/**
 * modal dialog
 * 模态对话框组件
 * 分为ajax加载url页面，静态对话框页面
 * <div class="modal-header" >
 * <div class="modal-body">
 * <div class="modal-footer" >
 */

(function($,undefined){
	
	$.fn.mobileDialog=function(params,callback){
		
		var id=$(this).attr("id");
		if(!id)
			return;
		var dialog=$("#"+id).data("ui-mobile-dialog");
		if(!dialog)
			$("#"+id).data("ui-mobile-dialog",$("#")+id);
		if(!params) var params={};
		
		var pagecontainer=$("#"+id).closest(".ui-page");
		
		//远程加载内容
		if(params.url){
			var Dialoghtml='<div class="modal hide" id="'+id+'_mobile-dialog">'
				+'<div id="'+id+'_mobile-dialog_content">'
				+'</div>';
			 Dialoghtml+='</div>';
			
			pagecontainer.append(Dialoghtml);
			
			$("#"+id+"_mobile-dialog_content").load(params.url,function(){
				//重载pagecreate事件
				$("#"+id+"_mobile-dialog_content").css("padding","0").trigger("create");
				
				if(callback){
					callback();
				};
	
				var dialog_object=$("#"+id+"_mobile-dialog");
				if(dialog_object){
					dialog_object.modal({
						backdrop : 'static',
						keyboard : false,
						show : true
						
					});
				};
			});
		
		}
		//静态页面
		else{
			
			$("#"+id).modal({
				backdrop : 'static',
				keyboard : false,
				show : true
				
			});
			
		}
		
        //page切换之前关闭未关闭的对话框
		pagecontainer.bind("pagebeforehide",function(e){
			var dialogModal1=$("#"+id+'_mobile-dialog').data('modal');
			var dialogModal2=$("#"+id).data("modal");
			if((dialogModal1&&dialogModal1.isShown)||(dialogModal2&&dialogModal2.isShown)){
				$("#"+id).closeDialog();
			}
		});
		
	};
	
	
	$.fn.showDialog=function(){
		var id=$(this).attr("id");
		var dialog_object=$("#"+id+"_mobile-dialog");
		if(dialog_object){
			dialog_object.modal("show");
		}
		else{
			$("#"+id).modal("show");
		}
	};
	
	$.fn.closeDialog=function(){
		var id=$(this).attr("id");
		var dialog_object=$("#"+id+"_mobile-dialog");
		if(dialog_object.length){
			dialog_object.modal('hide');
			dialog_object.remove();
		}	
		else{
			$("#"+id).modal("hide");
		}
	};
	
	$.mobile.document.bind('pagecreate create', function (e) {
		
		$(':jqmData(role="modaldialog")',$(e.target)).each(function () {
			var $dialog = $(this);
			$dialog.addClass("modal hide");
		});
	});
	
	
})(jQuery);